#include "bsp_led.h"

uint8_t led_stat = 1;

/************************************************
函数名称 ： LED_Init
功    能 ： 系统状态指示灯
参    数 ： 无
返 回 值 ： 无
作    者 ： FlySnail
*************************************************/
void LED_Init(void)
{
	GPIO_InitTypeDef  GPIO_InitStructure;
	TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
	TIM_OCInitTypeDef  TIM_OCInitStructure;
	
	//RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 , ENABLE);
	//RCC_APB2PeriphClockCmd(LED_RCC | RCC_APB2Periph_AFIO, ENABLE);
	RCC_APB2PeriphClockCmd(LED_RCC, ENABLE);

	GPIO_InitStructure.GPIO_Pin = LED_PIN;              
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//GPIO_Mode_AF_PP;           
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(LED_PORT, &GPIO_InitStructure); 
	
//	TIM_TimeBaseStructure.TIM_Prescaler = TIMER2_PRESCALER;   
//  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
//  TIM_TimeBaseStructure.TIM_Period = TIMER2_PERIOD;   
//  TIM_TimeBaseStructure.TIM_ClockDivision = 0;
//  TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;
//  TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);

//	//初始化TIM3 Channel2 PWM模式	 
//	TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //选择定时器模式:TIM脉冲宽度调制模式2
// 	TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比较输出使能
//	TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //输出极性:TIM输出比较极性高
//	TIM_OCInitStructure.TIM_Pulse = TIMER2_PULSE;


//	TIM_OC2Init(TIM2, &TIM_OCInitStructure);  
//	TIM_OC2PreloadConfig(TIM2, TIM_OCPreload_Enable);  

// 
//	TIM_Cmd(TIM2, ENABLE);  //使能TIM3
//	/* TIM1 Main Output Enable */
//  TIM_CtrlPWMOutputs(TIM2, ENABLE);
//	
//	sysStatLed = BREATH;
//	LED_OFF();
}



/************************************************
函数名称 ： LED_TOGGLE
功    能 ： 切换灯的显示状态
参    数 ： 无
返 回 值 ： 无
作    者 ： FlySnail
*************************************************/
void LED_TOGGLE(void)
{
	if(led_stat==0)	{
		led_stat = 1;
		LED_ON();
	}else{
		led_stat = 0;
		LED_OFF();
	}
}

/*
间隔时间interval控制了呼吸频率，可以做适当调整
*/
//void LED_Breathing(void)
//{
//	static uint8_t  interval=5;
//	static int8_t pulse=0,flag=0;
//	if(flag==0)
//	{
//		pulse+=interval;
//		if(pulse>=100)	flag = 1;
//	}
//	else if(flag==1)
//	{
//		pulse-=interval;
//		if(pulse<=0)	flag = 0;
//	}
//	TIM_SetCompare2(TIM2, pulse);
//}



//// 周期执行
//void LED_Updata(LED_STAT stat)
//{
//	static LED_STAT statLast = IDEL;
//	if(stat!=statLast || stat==TOGGLE || stat==BREATH){  // 状态切换和呼吸灯需要周期执行
//		switch(stat){
//			case OFF:LED_OFF();break;
//			case ON:LED_ON();break;
//			case TOGGLE:LED_TOGGLE();break;
//			case BREATH:LED_Breathing();break;
//			default:break;
//		}
//	}
//	statLast = stat;
//}


